/**
 * 
 */
package share.security.auth;

import share.storage.io.File;

/**
 * @author wzz
 *
 */
public interface Authenticator {
	/**
	 * 对输入的用户名和密码进行判断，看是否能登录,并设置相应的Session变量。
	 * @return 登陆成功返回User实体，失败返回null
	 */
	public User login(String username,String password);
	
	/**
	 * 判断是否登陆
	 * @return 已登陆返回User实体，否则返回null
	 */
	public User hasLogin();
	
	/**
	 * 判断是否是管理员
	 * @return 是返回User实体，否则返回null
	 */
	public User isAdmin();
	
	/**
	 * 判断是否能上传文件
	 * @return 能返回User实体，否则返回null
	 */
	public User canUpload();
	
	/**
	 * 判断是否能下载
	 * @return 能返回User实体，否则返回null
	 */
	public User canDownload(File file);
	
	/**
	 * 登出
	 */
	public void logout();
}
